﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Core;
using System.Data.SqlClient;
namespace Crosland.Automotriz.Data.Dao.Linq
{
    public class clstd_articulo_servicioDAO
    {

        private AutomotrizEntities ContextoDeObjs = new AutomotrizEntities();
        //public bool Insertar(TD_ARTICULO_SERVICIO Obj)
        //{
        //    try
        //    {
        //        ContextoDeObjs.AddObject("TD_ARTICULO_SERVICIO", Obj);
        //        ContextoDeObjs.SaveChanges();
        //    }
        //    catch (Exception)
        //    {
        //        return false;
        //    }
        //    return true;
        //}
        //public bool Modificar(TD_ARTICULO_SERVICIO obj)
        //{
        //    try
        //    {
        //        ContextoDeObjs.AttachTo("TD_ARTICULO_SERVICIO", obj);
        //        ContextoDeObjs.ObjectStateManager.ChangeObjectState(obj, System.Data.EntityState.Modified);
        //        ContextoDeObjs.SaveChanges();
        //    }
        //    catch (Exception)
        //    {
        //        return false;

        //    }
        //    return true;
        //}
        //public bool Eliminar(TD_ARTICULO_SERVICIO obj)
        //{
        //    try
        //    {
        //        ContextoDeObjs.AttachTo("TD_ARTICULO_SERVICIO", obj);
        //        ContextoDeObjs.DeleteObject(obj);
        //        ContextoDeObjs.SaveChanges();
        //    }
        //    catch (Exception)
        //    {
        //        return false;
        //    }
        //    return true;
        //}
        public List<V_pronostico_importacion> listar()
        {

            List<V_pronostico_importacion> lista = new List<V_pronostico_importacion>();
                try
                {
                    var q = from c in ContextoDeObjs.V_pronostico_importacion
                        select c;
                lista = q.ToList();
               
            }
            catch (Exception)
            { 
            }
            return lista;
        }

        //public List<TD_ARTICULO_SERVICIO> Consultar(string CodEmpresa,string CodArt )
        //{

        //    List<TD_ARTICULO_SERVICIO> lista = new List<TD_ARTICULO_SERVICIO>();
        //    try
        //    {
        //        var q = from c in ContextoDeObjs.TD_ARTICULO_SERVICIO
        //                 where c.COD_EMPRESA==CodEmpresa && c.COD_ARTICULO_SERV==CodArt
        //                select c;
        //        lista = q.ToList();

        //    }
        //    catch (Exception ex)
        //    {
        //    }
        //    return lista;
        //}



        //public IEnumerable<Object> Listar_Art_Mae(string codFamilia,string codArt)
        //{

        //    IEnumerable<Object> lista = new List<Object>();
        //    try
        //    {
        //        var q = (from c in ContextoDeObjs.TD_ARTICULO_SERVICIO
        //                where c.COD_EMPRESA == "0008" && c.COD_FAMILIA == codFamilia && c.COD_ARTICULO_SERV.Contains(codArt)
        //                select new
        //                {
        //                    c.COD_EMPRESA,c.COD_FAMILIA,c.COD_ARTICULO_SERV,c.DES_ARTICULO_SERV,c.DES_MODELO
        //                }).Distinct();
        //        lista = q.ToList();

        //    }
        //    catch (Exception ex)
        //    {
        //    }
        //    return lista;
        //}
        //public IEnumerable<Object> Listar_Art_Sus(string codFamilia, string codArt)
        //{

        //    IEnumerable<Object> lista = new List<Object>();
        //    try
        //    {
        //        var q = from c in ContextoDeObjs.V_Mae_Sus
        //                where c.COD_EMPRESA == "0008" && c.cod_familia == codFamilia && c.COD_ARTICULO_SERV_MAE == codArt
        //                select new 
        //                {
        //                    CodFamilia=c.cod_familia,CodArticuloservsus=c.COD_ARTICULO_SERV_SUS,CodEmpresa=c.Descripcion,codTipoSus=c.COD_TIPO_SUS,c.COD_ARTICULO_SERV_MAE,c.DES_TIPO_SUS,c.CANTIDAD,c.IND_AGRUPACION,c.NIVEL_SUS
        //                };
        //        lista = q.ToList();

        //    }
        //    catch (Exception ex)
        //    {
        //    }
        //    return lista;
        //}

        public IEnumerable<Object> Buscar_Art_Sus(string codMaeterial)
        {

            IEnumerable<Object> lista = new List<Object>();
            try
            {
                //var q = from c in ContextoDeObjs.V_Mae_Sus
                //        where c.COD_EMPRESA == "0008" && c.cod_familia == codFamilia && (c.COD_ARTICULO_SERV_SUS + c.Descripcion).Contains(Art)
                //        select c;
                //lista = q.ToList();
                lista = ContextoDeObjs.USP_BUSCAR_ARTICULOS(codMaeterial).Take(100);

            }
            catch (Exception)
            {
            }
            return lista;
        }




        public IEnumerable<Object> Buscar_Art_SusTop(string codMaeterial)
        {

            IEnumerable<Object> lista = new List<Object>();
            try
            {
                //var q = from c in ContextoDeObjs.V_Mae_Sus
                //        where c.COD_EMPRESA == "0008" && c.cod_familia == codFamilia && (c.COD_ARTICULO_SERV_SUS + c.Descripcion).Contains(Art)
                //        select c;
                //lista = q.ToList();
                lista = ContextoDeObjs.USP_BUSCAR_ARTICULOS(codMaeterial).Take(200);

            }
            catch (Exception)
            {
            }
            return lista;
        }




        //Traer detalle de articulos

        //public IEnumerable<Object> ListaArticulosDetalle(string codArticulo)
        //{

        //    IEnumerable<Object> lista = new List<Object>();
        //    try
        //    {
        //        var q = (from c in ContextoDeObjs.LOG_SUS_ART
        //                from l in ContextoDeObjs.LOG_SUS_TIP_SUS_ART
        //                from a in ContextoDeObjs.TD_ARTICULO_SERVICIO
        //                 where c.COD_ARTICULO_SERV_SUS == a.COD_ARTICULO_SERV
        //                where c.COD_TIPO_SUS == l.COD_TIPO_SUS
        //                where c.COD_ARTICULO_SERV == codArticulo
        //                select new {
        //                c.COD_ARTICULO_SERV,
        //                c.COD_ARTICULO_SERV_SUS,
        //                c.COD_TIPO_SUS,
        //                c.CANTIDAD,
        //                c.NIVEL_SUS,
        //                l.DES_TIPO_SUS,
        //                a.DES_ARTICULO_SERV
                        
        //                }).Distinct();
        //        lista = q.ToList();
            

        //    }
        //    catch (Exception ex)
        //    {
        //    }
        //    return lista;
        //}





        public IEnumerable<Object> Mae_Sus_Art(string CodEmpresa, string codFamilia)
        {

            IEnumerable<Object> lista = new List<Object>();
            try
            {
              lista = ContextoDeObjs.PA_Mae_Sus_Art(CodEmpresa,codFamilia);

            }
            catch (Exception)
            {
            }
            return lista;
        }

        public bool SP_ABC(string EmpresaRepuestos, double diasAtras, double catAdesde, double catAhasta, double catBdesde, double catBhasta,
                          string usuario)
        {

            try
            {

                ContextoDeObjs.ExecuteStoreCommand("exec USP_LOG_ASIGNA_ABC '" + EmpresaRepuestos + "'," + diasAtras + "," + catAdesde + "," + catAhasta + "," + catBdesde + "," + catBhasta + ",'" + usuario + "','" + DateTime.Now.Date.ToString("dd/MM/yyyy") + "'");
                return true;
            }
            catch (SqlException ex)
            {


                Globales.msjSql = ex.Message;

                return false;
            }
            catch(Exception)
            {
                return false;
            }
                    
        }






      //modificacion de relacionar articulos




        //listado





        //public IEnumerable<Object> ListarArticuloV2()
        //{



        //    IEnumerable<Object> listar = new List<Object>();



        //    try
        //    {

        //        var q = (from L in ContextoDeObjs.LOG_SUS_ART
        //                 from T in ContextoDeObjs.LOG_SUS_ART_MAE
        //                 from M1 in ContextoDeObjs.TD_MATERIAL
        //                 from M2 in ContextoDeObjs.TD_MATERIAL
        //              where  L.ID_MATERIAL==M1.ID_MATERIAL 
        //                 where  L.ID_MATERIAL_SUS==M2.ID_MATERIAL 
        //                 where   L.ID_SUS_ART_MAE==T.ID_SUS_ART_MAE



        //                 select new
        //                 {  
                                                     
        //                     L.TD_MATERIAL,
        //                     L.ID_MATERIAL_SUS,
        //                     L.COD_MATERIAL,
        //                     L.COD_MATERIAL_SUS,
        //                     T.DES_TIPO_SUS,
        //                     L.CANTIDAD,
        //                     dsc_material=M1.DES_MATERIAL,
        //                    dsc_materialSus= M2.DES_MATERIAL 

        //                 });
        //        listar= q.ToList();

        //    }
        //    catch (Exception ex)
        //    {
        //    }
        //    return listar;



        //}


        public List<V_Log_Articulos_Relacionados> ListarArticuloV2()
        {

            List<V_Log_Articulos_Relacionados> listar = new List<V_Log_Articulos_Relacionados>();
            try
            {

                var q = from L in ContextoDeObjs.V_Log_Articulos_Relacionados
                        select L;

                listar= q.ToList();
            }
            catch
            {
               
            }

            return listar;
        
        }








        public bool EliminarArticulosRelacion(T_LOG_ARTICULO_RELACIONADO obj)
        {
            try
            {
                ContextoDeObjs.AttachTo("T_LOG_ARTICULO_RELACIONADO", obj);
                ContextoDeObjs.DeleteObject(obj);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }





    }

}
